package com.speedchina.common.message.email.service;

import com.speedchina.common.message.email.entity.Mail;
import com.speedchina.common.message.util.SendResult;
import org.thymeleaf.context.Context;

/**
 * email-provider
 * @author zyw
 */
public interface MailService {
    /**
     * 普通文本邮件
     * @param to 接收者邮件
     * @param cc 抄送人 允许为空
     * @param subject 邮件主题
     * @param content 邮件内容
     */
    SendResult sendSimpleMail(String to,String cc, String subject, String content);
    /**
     * 普通文本邮件
     * @param subject 邮件主题
     * @param content 邮件内容
     */
    SendResult sendSimpleMail(String subject, String content);

    /**
     * html格式的邮件
     * @param to 接收者邮件
     * @param subject 邮件主题
     * @param content HTML内容
     */
    SendResult sendHtmlMail(String to, String subject, String content);

    /**
     * html格式的邮件
     * @param to 接收者邮件
     * @param subject 邮件主题
     * @param content HTML内容
     */
    SendResult sendHtmlMail(String[] to,String[] cc, String subject, String content);

    /**
     * 附件邮件
     * @param to 接收者邮件
     * @param subject 邮件主题
     * @param content HTML内容
     * @param filePath 附件路径
     */
    SendResult sendAttachmentsMail(String to, String subject, String content, String filePath);

    /**
     * 附件邮件
     * @param to 接收者邮件
     * @param subject 邮件主题
     * @param content HTML内容
     * @param filePath 附件路径
     */
    SendResult sendAttachmentsMail(String to, String subject, String content, String[] filePath);

    /**
     * 根据模板进行发送消息
     * todo 后续应该template 能够和 content 进行绑定 （模板后续应从数据库中读取）
     * @param template 模板
     * @param context 模板内容参数 （待考虑）
     * @param mail 收件人 摘抄
     * @return
     */
    SendResult sendThymeleafFormwork(String template, Context context, Mail mail);
}
